博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ThinkPHP 使用U方法自动生成URL超链接
阅读量:7224 次
发布时间:2019-06-29

本文共 1557 字,大约阅读时间需要 5 分钟。

hot3.png

ThinkPHP U方法

U 方法是 ThinkPHP 内置的一个快捷方法,可以根据系统 URL 模式配置动态的生成智能的 URL 地址。

由于 ThinkPHP 支持各种不同的 URL 模式,另外还有项目分组模式,因此当部署环境发生变化时,有时候可能会改变 URL 模式,而 U 方法正是解决不同环境配置情况下的 URL 统一问题。除了动态生成 URL 以自适应系统配置外,U 方法还有一个好处是可以自动加上伪静态后缀。

U 方法语法

U 方法的定义规则如下:

('[分组/模块/操作]?参数' [,'参数','伪静态后缀','是否跳转','显示域名'])

方括号内为可选参数,如果不指明分组、模块以及操作的话,就默认为当前分组、当前模块与当前操作。

U方法实例

U 方法作为 ThinkPHP 的系统函数,可以直接用于操作方法中,也可用于模板中(见后面文字)。

假设当前为 Index 模块的 index 操作,生成当前模块的 list 操作 URL:

U('list?cat_id=1&status=1')

生成的 URL 为相对链接:http://www.5idev.com/index.php/Index/list/cat_id/1/status/1

同时 U 方法还支持下面两种定义格式,上面的例子与下面的定义格式是等效的:

U'list',array('cate_id'=>1,'status'=>1))U'list','cate_id=1&status=1')

模板中使用 U 方法

U 方法不仅能在操作方法中动态生成 URL 地址,其实更常用的是在模板中生成超链接地址:

超链接字符

生成 URL 后实际的 html 代码为:

// Pathinfo 模式:超链接字符

U 方法属于 ThinkPHP 系统函数,遵循在模板中使用系统函数的通用方法,即配合 {: } 使用,具体可见《ThinkPHP 模板中使用函数》。

U 方法中使用变量

使用于模板中的 U 方法,如果要使用变量(通常如此),需要用 . 连接符:

超链接字符

各种 URL 模式下的 U 方法结果对比

U 方法根据各种 URL 模式而自适应的生成不同的 URL 格式,如上面例子在各模式下生成的 URL 对比如下:

  • 普通兼容模式:http://www.5idev.com/index.php?m=Index&a=list&cat_id=1&status=1
  • Pathinfo 模式:http://www.5idev.com/index.php/Index/list/cat_id/1/status/1
  • Rewrite 模式:http://www.5idev.com/Index/list/cat_id/1/status/1
  • Rewrite 模式,伪静态后缀为 .html:http://www.5idev.com/Index/list/cat_id/1/status/1.html
  • Rewrite 模式,使用 - 分隔符与 .html 后缀:http://www.5idev.com/Index-list-cat_id-1-status-1.html

常见 U 方法使用例子

// 当前模块 list 操作U('list?cat_id=1&status=1')// 其他模块操作U('Blog/read?id=1')        // 生成Blog模块的read操作,并且id为1的URL地址// 其他分组U('Admin/User/view?uid=1')    // 生成Admin分组的User模块的view操作的URL地址

转载于:https://my.oschina.net/lanrenbar/blog/90947

你可能感兴趣的文章
04.SQLServer性能优化之---读写分离&数据同步
查看>>
大神php摘录
查看>>
MySQL常用查询
查看>>
Mac_IntelliJ IDEA For Mac 快捷键
查看>>
iOS - 社会化分享-微信分享,朋友圈分享
查看>>
【AtCoder - 2300】Snuke Line(树状数组)
查看>>
CSS选择器 < ~ +
查看>>
docker 容器时间跟宿主机时间同步
查看>>
Spring-AOP实践 - 统计访问时间--StopWatch
查看>>
爱上MVC~AuthorizeAttribute验证不通过如何停止当前上下文
查看>>
什么是API网关?
查看>>
卡方分布 | t检验 | F检验 | 卡方检验 | 假设检验 | 各种检验持续总结
查看>>
大话企业级移动应用的开发策略
查看>>
SDUT 2012春季ACM内部测试赛4's
查看>>
分享一款超棒的jQuery Google地图插件:Gmaps
查看>>
修改工程名称
查看>>
Node入门教程(10)第八章:Node 的事件处理
查看>>
关于 DataRow 中为 DataRowState.Deleted 状态的 字段列值取值方法
查看>>
孕妇高速上产女 交警医生合力架起生命绿色通道
查看>>
UAS-点评侧用户行为检索系统
查看>>